package CutLoad.mc
{
	
	import flash.events.MouseEvent;
	
	/**
	 * 将McToBtn设置成：点击一次切换下一个状态，再点击一次切换上一个状态
	 * @author smallerbird mail:smallerbird@gmail.com  site:www.mkigm.com QQ群:49983196
	 * 
	 */	
	public class McToBtnClickSwapStates
	{
		private var btnState1:uint,btnState2:uint,currentState:uint,btn:McToBtn;
		private var funChang:Function;
		/**
		 * 初始化 
		 * @param btn 需要操作的McToBtn
		 * @param funChang 每次改变的回调的方法，格式为：function(状态:uint)   关于状态说明：状态值为初始化方法里的最好两个参数值：btnState1，btnState2
		 * @param btnState1 McToBtn的状态值，取值范围1~4  默认为:1
		 * @param btnState2 McToBtn的状态值，取值范围1~4  默认为:2
		 * 
		 */		
		public function McToBtnClickSwapStates(btn:McToBtn,funChang:Function,btnState1:uint=1,btnState2:uint=2)
		{
			currentState=btnState1;
			this.btnState1=btnState1;
			this.btnState2=btnState2;
			btn.setStates(btnState1);
			this.btn=btn;
			if(btn.isTargetInMe()){
				btn.addEventListener(MouseEvent.CLICK,click);
			}else{
				btn.getTarget().addEventListener(MouseEvent.CLICK,click);
			}
			this.funChang=funChang;
		}
		public function click(e:MouseEvent):void{
			if(currentState==btnState1){
				currentState=btnState2;
			}else{
				currentState=btnState1;
			}
			btn.setStates(currentState);
			funChang(currentState);
		}
		/**
		 * 设置显示哪一个按钮 
		 * @param index 两个状态值：1或非1
		 * 
		 */		
		public function setState(index:Number):void{
			if(index==1){
				currentState=btnState1
			}else{
				currentState=btnState2
			}
			btn.setStates(currentState);
			funChang(currentState);
		}
	}
}